package com.storage.system.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 商品表 storage_goods
 *
 * @author ruoyi
 * @date 2019-08-26
 */
@ApiModel(value = "商品对象")
public class StorageGoods implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     * 商品编码
     */
    @ApiModelProperty(value = "商品编码")
    private String goodsCode;
    /**
     * 产品id
     */
    @ApiModelProperty(value = "产品id")
    private Long productId;
    /**
     * 库存数量
     */
    @ApiModelProperty(value = "库存数量")
    private Long stockNum;
    /**
     * 进货价
     */
    @ApiModelProperty(value = "进货价")
    private BigDecimal purchasePrice;

    /**
     * 批发价
     */
    @ApiModelProperty(value = "批发价")
    private BigDecimal tradePrice;
    /**
     * 零售价
     */
    @ApiModelProperty(value = "零售价")
    private BigDecimal retailPrice;
    /**
     * 预警
     */
    @ApiModelProperty(value = "预警")
    private Integer warning;
    /**
     * 商品拥有者类型:1-代理商;2-店铺
     */
    @ApiModelProperty(value = "商品拥有者类型:1-代理商;2-店铺")
    private Integer ownerType;
    /**
     * 创建人id
     */
    @ApiModelProperty(value = "创建人id")
    private Long createUserId;
    /**
     * 生产日期
     */
    @ApiModelProperty(value = "生产日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date productTime;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date modifyTime;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 单品属性详情
     */
    @ApiModelProperty(value = "单品属性详情")
    private String propertiesDetail;

    /** 扩展属性 */
    /**
     * 商品属性列表
     */
    List<StoragePropertiesValue> propertiesValues;

    /**
     * 安卓需要的属性列表详情数据
     */
    List<Map<String, String>> propertiesDetailArr;

    private String color;

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setGoodsCode(String goodsCode) {
        this.goodsCode = goodsCode;
    }

    public String getGoodsCode() {
        return goodsCode;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setStockNum(Long stockNum) {
        this.stockNum = stockNum;
    }

    public Long getStockNum() {
        return stockNum;
    }

    public void setPurchasePrice(BigDecimal purchasePrice) {
        this.purchasePrice = purchasePrice;
    }

    public BigDecimal getPurchasePrice() {
        return purchasePrice;
    }

    public void setTradePrice(BigDecimal tradePrice) {
        this.tradePrice = tradePrice;
    }

    public BigDecimal getTradePrice() {
        return tradePrice;
    }

    public void setRetailPrice(BigDecimal retailPrice) {
        this.retailPrice = retailPrice;
    }

    public BigDecimal getRetailPrice() {
        return retailPrice;
    }

    public void setWarning(Integer warning) {
        this.warning = warning;
    }

    public Integer getWarning() {
        return warning;
    }

    public void setCreateUserId(Long createUserId) {
        this.createUserId = createUserId;
    }

    public Long getCreateUserId() {
        return createUserId;
    }

    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    public Date getModifyTime() {
        return modifyTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Integer getOwnerType() {
        return ownerType;
    }

    public void setOwnerType(Integer ownerType) {
        this.ownerType = ownerType;
    }

    public List<StoragePropertiesValue> getPropertiesValues() {
        return propertiesValues;
    }

    public void setPropertiesValues(List<StoragePropertiesValue> propertiesValues) {
        this.propertiesValues = propertiesValues;
    }

    public String getPropertiesDetail() {
        return propertiesDetail;
    }

    public void setPropertiesDetail(String propertiesDetail) {
        this.propertiesDetail = propertiesDetail;
    }

    public Date getProductTime() {
        return productTime;
    }

    public void setProductTime(Date productTime) {
        this.productTime = productTime;
    }

    public List<Map<String, String>> getPropertiesDetailArr() {
        return propertiesDetailArr;
    }

    public void setPropertiesDetailArr(List<Map<String, String>> propertiesDetailArr) {
        this.propertiesDetailArr = propertiesDetailArr;
    }
}
